﻿using System.Windows.Controls;
using MJD.Comunes.DtoEntidades;

namespace Contratos.Aseguradora
{
    /// <summary>
    /// Interface que hace de contrato para la vista de gestionar aseguradora
    /// </summary>
    public interface IGestionarAseguradora:IBase
    {
        /// <summary>
        /// Propiedad que devuelve el valor del panel con los datos para buscar aseguradoras
        /// </summary>
        Canvas PanelBuscarAseguradoras { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del panel con los datos basicos de la aseguradoras
        /// </summary>
        Canvas PanelDatosAseguradoras { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del panel con la lista de aseguradoras
        /// </summary>
        Canvas PanelListaAseguradoras { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del panel con la lista de sucursales de la aseguradora
        /// </summary>
        Canvas PanelListaSucursales { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del textbox para los datos principales de la aseguradora
        /// </summary>
        TextBox NombreAseguradora { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del textbox donde va el numero de rif de la aseguradora
        /// </summary>
        TextBox NumeroRif { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del textbox donde va el codigo de area de la aseguradora
        /// </summary>
        TextBox CodigoArea { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del control donde va el numero de telefono de la aseguradora
        /// </summary>
        TextBox NumeroTelefono { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del control que lista las letras de rif
        /// </summary>
        ComboBox LetraRif { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del textbox del nombre para la busqueda de la aseguradora
        /// </summary>
        TextBox NombreAseguradoraBusqueda { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del textbox donde va el numero de rif de la aseguradora para la busqueda
        /// </summary>
        TextBox NumeroRifBusqueda { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del control que lista las letras de rif para la busqueda
        /// </summary>
        ComboBox LetraRifBusqueda { get; }


        /// <summary>
        /// Boton que agrega una aseguradora
        /// </summary>
        Button AgregarAseguradora { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del grid que maneja la lista de aseguradoras
        /// </summary>
        DataGrid ListaAseguradoras { get; }


        /// <summary>
        /// Propiedad que devuelve el valor del grid que maneja la lista de sucursales
        /// </summary>
        DataGrid ListaSucursales { get; }


        /// <summary> Metodo que habilita la vista para mostrar los datos de una nueva sucursal </summary>
        /// <param name="agregar"> true si la vista es para agregar false si la vista es para editar</param>
        /// <param name="sucursal">datos de la sucursal a editar en caso de edicion </param>
        void MostrarAgregarSucursal(bool agregar, DtoSucursal sucursal);


        /// <summary>
        /// propiedad que devuelve el valor de la venta hija para agregar una nueva sucursal
        /// </summary>
        IAgregarSucursal VentanaSucursal { get; }
    }
}
